#ifndef _VS1003_Audio_Decoder_H_
#define _VS1003_Audio_Decoder_H_

// define SPI pin for SPI_VS10xx
#define SPI_VS10xx 			SPI2
#define SPI_VS10xx_GPIO		GPIOB
#define SPI_VS10xx_CLK		GPIO_Pin_13
#define SPI_VS10xx_MOSI		GPIO_Pin_15
#define SPI_VS10xx_MISO 	GPIO_Pin_14
// define function pin for VS10xx
#define VS10xx_Func_GPIO	GPIOB
#define VS10xx_DREQ			GPIO_Pin_2
#define VS10xx_CS			GPIO_Pin_1
#define VS10xx_RST			GPIO_Pin_0
// define RCC clock config for SPI_VS10xx
#define RCC_SPI_VS10xx_ClockCmd \
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);\
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);\
// define RCC clock config for VS10xx pin function
#define RCC_VS10xx_Func_ClockCmd \
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);\

void EXTI_2_Config(void);
void HardReset_VS10xx(void);
void SoftReset_VS10xx(void);
void Test_Beep_VS10xx(void);
void VS10xx_Func_Config(void);
void SPI_VS10xx_Config(void);
void SPI_VS10xx_Send(uint8_t data);
uint16_t SPI_VS10xx_Get(void);
void VS10xx_SetVol(void);
void VS10xx_GetVol(void);

#endif
